import turtle as t


def draw_circle(radius, extent=None, steps=None, fc="yellow", angle=0, x=0, y=0):
    """
    :param radius:
    :param extent: 弧度
    :param steps: 边数（多边形）
    :param fc: 颜色
    :param angle: 偏转角度
    :param x:
    :param y:
    :return:
    """
    t.up()
    t.goto(x, y)
    t.setheading(angle - 90)  # 设置旋转角度，默认从底部开始画
    t.forward(radius)  # 移动到圆的底部
    t.left(90)  # 调整方向准备画圆
    t.down()

    t.fillcolor(fc)
    t.begin_fill()
    t.circle(radius, extent, steps)
    t.end_fill()
    t.up()
    t.goto(x,y)
    # print(f"weizhi{t.pos()[1]}")
    t.dot(2, 'red')  # 在圆心画一个点以示标记
    t.setheading(0)  # 重置为向右的方向
    t.down()

def tai_ji(radius=200, angle=0):
    draw_circle(radius, extent=180, fc='black', angle=angle, x=0, y=0)
    draw_circle(radius, extent=-180, fc='white', angle=angle, x=0, y=0)
    t.up()
    t.goto(0, 0)
    t.setheading(angle - 90)  # 设置旋转角度
    t.forward(-radius/2)  # 移动到圆心
    t.down()
    draw_circle(radius/2, x=t.pos()[0], y=t.pos()[1], extent=-180, fc='black', angle=angle)
    t.up()
    t.goto(0, 0)
    t.setheading(angle - 90)  # 设置旋转角度
    t.forward(radius / 2)  # 移动到圆心
    t.down()
    draw_circle(radius/2, x=t.pos()[0], y=t.pos()[1], extent=180, fc='white', angle=angle)
    t.up()
    t.goto(0, 0)
    t.setheading(angle - 90)  # 设置旋转角度
    t.forward(-radius / 2)  # 移动到圆心
    t.down()
    draw_circle(radius/8, x=t.pos()[0], y=t.pos()[1], fc='white', angle=angle)
    t.up()
    t.goto(0, 0)
    t.setheading(angle - 90)  # 设置旋转角度
    t.forward(radius / 2)  # 移动到圆心
    t.down()
    draw_circle(radius/8, x=t.pos()[0], y=t.pos()[1], fc='black', angle=angle)
def rotate():
    angle = 0
    while True:
        t.clear()
        tai_ji(angle=angle)
        angle += 1
        t.update()  # 刷新显示


t.speed('normal')
t.tracer(0, 0)  # 关闭自动刷新，手动控制屏幕刷新

rotate()

t.done()

